import { IDEChartSeries } from '@ibiz/model-core';
import { IChartState } from '@ibiz-template/runtime';

/**
 * @description 多数据部件分组参数
 * @export
 * @interface IApiMDGroupParams
 */
export interface IApiMDGroupParams {
  /**
   * @description 分组属性标识
   * @type {string}
   * @memberof IApiMDGroupParams
   */
  groupFieldId: string;

  /**
   * @description 分组代码表标识
   * @type {string}
   * @memberof IApiMDGroupParams
   */
  groupCodeListId?: string;

  /**
   * @description 日期分组格式
   * @type {(('year' | 'quarter' | 'month' | 'week' | 'day')[])} (年 | 季度 | 月 | 周 | 天)
   * @memberof IApiMDGroupParams
   */
  dateFormat?: ('year' | 'quarter' | 'month' | 'week' | 'day')[];

  /**
   * @description 是否为自定义扩展属性
   * @type {boolean}
   * @memberof IApiMDGroupParams
   */
  extend?: boolean;
}

/**
 * @description 测量接口
 * @export
 * @interface ISurvey
 */
export interface ISurvey {
  /**
   * @description 标签
   * @type {string}
   * @memberof ISurvey
   */
  label: string;
  /**
   * @description 值
   * @type {string}
   * @memberof ISurvey
   */
  value: string;
}

/**
 * @description odoo图表UI状态对象
 * @export
 * @interface IOdooChartState
 * @extends {IChartState}
 */
export interface IOdooChartState extends IChartState {
  /**
   * @description 选中测量
   * @type {string}
   * @memberof IOdooChartState
   */
  selectSurvey?: string;

  /**
   * @description 图表排序
   * @type {('Descending' | 'Ascending')} （降序 | 升序）
   * @memberof IOdooChartState
   */
  chartSort?: 'Descending' | 'Ascending';

  /**
   * @description 测量集合
   * @type {ISurvey[]}
   * @memberof IOdooChartState
   */
  surveys: ISurvey[];

  /**
   * @description 图表数据序列集合(原始模型)
   * @type {IDEChartSeries[]}
   * @memberof IOdooChartState
   */
  dechartSerieses: IDEChartSeries[];

  /**
   * @description 选中序列
   * @type {IDEChartSeries}
   * @memberof IOdooChartState
   */
  selectSeries: IDEChartSeries;

  /**
   * @description 堆叠
   * @type {boolean}
   * @memberof IOdooChartState
   */
  stacked: boolean;

  /**
   * @description 累加
   * @type {boolean}
   * @memberof IOdooChartState
   */
  cumulative: boolean;
}
